package top.zywork.query;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;

/**
 * GoodsOrderQuery查询对象类<br/>
 *
 * 创建于2020-01-07<br/>
 *
 * @author http://zywork.top 王振宇
 * @version 1.0
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@EqualsAndHashCode(callSuper = true)
public class GoodsOrderQuery extends PageQuery {

    private static final long serialVersionUID = -9223372035331744072L;

    /**
	 * 订单编号
	 */
	private Long id;
	/**
	 * 订单编号(最小值)
	 */
	private Long idMin;
	/**
	 * 订单编号(最大值)
	 */
	private Long idMax;
	/**
	 * 用户编号
	 */
	private Long userId;
	/**
	 * 用户编号(最小值)
	 */
	private Long userIdMin;
	/**
	 * 用户编号(最大值)
	 */
	private Long userIdMax;
	/**
	 * 店铺编号
	 */
	private Long shopId;
	/**
	 * 店铺编号(最小值)
	 */
	private Long shopIdMin;
	/**
	 * 店铺编号(最大值)
	 */
	private Long shopIdMax;
	/**
	 * 订单号
	 */
	private String orderNo;
	/**
	 * 订单金额（元）
	 */
	private BigDecimal totalAmount;
	/**
	 * 订单金额（元）(最小值)
	 */
	private BigDecimal totalAmountMin;
	/**
	 * 订单金额（元）(最大值)
	 */
	private BigDecimal totalAmountMax;
	/**
	 * 实付金额（元）
	 */
	private BigDecimal payAmount;
	/**
	 * 实付金额（元）(最小值)
	 */
	private BigDecimal payAmountMin;
	/**
	 * 实付金额（元）(最大值)
	 */
	private BigDecimal payAmountMax;
	/**
	 * 优惠金额（元）
	 */
	private BigDecimal discountAmount;
	/**
	 * 优惠金额（元）(最小值)
	 */
	private BigDecimal discountAmountMin;
	/**
	 * 优惠金额（元）(最大值)
	 */
	private BigDecimal discountAmountMax;
	/**
	 * 赠送积分
	 */
	private Long integralAmount;
	/**
	 * 赠送积分(最小值)
	 */
	private Long integralAmountMin;
	/**
	 * 赠送积分(最大值)
	 */
	private Long integralAmountMax;
	/**
	 * 运费（元）
	 */
	private BigDecimal expressFee;
	/**
	 * 运费（元）(最小值)
	 */
	private BigDecimal expressFeeMin;
	/**
	 * 运费（元）(最大值)
	 */
	private BigDecimal expressFeeMax;
	/**
	 * 订单状态
	 */
	private Byte orderStatus;
	/**
	 * 订单状态(最小值)
	 */
	private Byte orderStatusMin;
	/**
	 * 订单状态(最大值)
	 */
	private Byte orderStatusMax;
	/**
	 * 支付时间
	 */
	private Date payTime;
	/**
	 * 支付时间(最小值)
	 */
	private Date payTimeMin;
	/**
	 * 支付时间(最大值)
	 */
	private Date payTimeMax;
	/**
	 * 支付方式
	 */
	private Byte payType;
	/**
	 * 支付方式(最小值)
	 */
	private Byte payTypeMin;
	/**
	 * 支付方式(最大值)
	 */
	private Byte payTypeMax;
	/**
	 * 支付订单号
	 */
	private String transactionNo;
	/**
	 * 是否支付成功
	 */
	private Byte paySuccess;
	/**
	 * 是否支付成功(最小值)
	 */
	private Byte paySuccessMin;
	/**
	 * 是否支付成功(最大值)
	 */
	private Byte paySuccessMax;
	/**
	 * 发货时间
	 */
	private Date deliverTime;
	/**
	 * 发货时间(最小值)
	 */
	private Date deliverTimeMin;
	/**
	 * 发货时间(最大值)
	 */
	private Date deliverTimeMax;
	/**
	 * 成交时间
	 */
	private Date dealTime;
	/**
	 * 成交时间(最小值)
	 */
	private Date dealTimeMin;
	/**
	 * 成交时间(最大值)
	 */
	private Date dealTimeMax;
	/**
	 * 订单备注
	 */
	private String remark;
	/**
	 * 商家备注
	 */
	private String shopRemark;
	/**
	 * 版本号
	 */
	private Integer version;
	/**
	 * 版本号(最小值)
	 */
	private Integer versionMin;
	/**
	 * 版本号(最大值)
	 */
	private Integer versionMax;
	/**
	 * 创建时间
	 */
	private Date createTime;
	/**
	 * 创建时间(最小值)
	 */
	private Date createTimeMin;
	/**
	 * 创建时间(最大值)
	 */
	private Date createTimeMax;
	/**
	 * 更新时间
	 */
	private Date updateTime;
	/**
	 * 更新时间(最小值)
	 */
	private Date updateTimeMin;
	/**
	 * 更新时间(最大值)
	 */
	private Date updateTimeMax;
	/**
	 * 是否激活
	 */
	private Byte isActive;
	/**
	 * 是否激活(最小值)
	 */
	private Byte isActiveMin;
	/**
	 * 是否激活(最大值)
	 */
	private Byte isActiveMax;
	
	/**
	 * 多个编(只用于单表，关联表不适用)
	 */
	private Long[] ids;
}
